[统计学习]第四章朴素贝叶斯法

朴素贝叶斯法是以特征独立性假设为基础,利用贝叶斯定理进行分类方法。因为在朴素贝叶斯方法过程中,需要在学习过程中学习到生成数据的模式——该模式是能够进行预测前 $P(\hat{y}|X)$ 需要通过 $P(X|y)\times P(y)$ 方式能够构建数据生成机制;此外依赖独立性假设,使预测的方式转换为求解最大化后验概率来预测结果。

1. 朴素贝叶斯的推导

朴素贝叶斯首先需要通过先验概率(即实际数据中标签在不同的类别 $k$ 的比例)和条件概率的分布(即满足标签条件下,特征集的比例)学习联合概率分布:

$$
P(y=\text{label}), \text{label}\in[1,2,…,k] \
P(X=x|y=\text{label}) = P(x^{(1)},x^{(2)},\cdots,x^{(n)}|y=\text{label})
$$

实际计算过程中,如果以贝叶斯规则直接以条件概率 $P(X=x|y=\text{label})$计算分布的参数会存在较大的计算量——$\text{label}$ 存在 $k$ 个可能性,同时 $x^{(j)}$ 的可能取值为$S_j$,那么计算的参数个数为 $k\displaystyle{\prod_{j=1}^n}S_j$ 。因此在贝叶斯计算基础上提出了一个强假设条件——各个条件之间独立(即明确的 $\text{label}$ 中各个变量$x^{(j)}$ 的条件概率 $P(x^{(j)}|y=\text{label}$ 没有相关性),这也是朴素贝叶斯的由来。根据以上的假设,需要解决的问题转变为:

$$
\begin{align}
P(X=x|y=\text{label})&=P(x^{(1)},\cdots,x^{(n)}|y=\text{label}) \
&=\prod_{j=1}^nP(x^{(j)}|y=\text{label})
\end{align}
$$

最终需要计算的是后验概率,其数学表达式是:

$$
\begin{align}
P(y=\text{label}|X=x)&=\frac{P(y, X)}{P(X)} \
& =\frac{P(X=x|y=\text{label})P(y=\text{label})}{\displaystyle{\sum_k P(X=x|y=\text{label})P(y=\text{label})}} \
&=\frac{P(y=\text{label})\prod_{j=1}^nP(x^{(j)}|y=\text{label})}{\displaystyle{\sum_k P(y=\text{label})\prod_{j=1}^nP(x^{(j)}|y=\text{label})}}
\end{align}
$$

演化为需要将在 $\text{label}=[\text{label}_1,\cdots, \text{label}_k]$ 分类中,确认最大化 $P(y=\text{label}|X=x)$ 概率,而且分母作为其中的 normalization 项,所以目标转换为之需要最大化分子项

1.1 朴素贝叶斯损失函数

朴素贝叶斯解决的是分类问题,针对二分类问题构造出的损失函数为:
$$
L(y, f(X))=
\begin{cases}
1, y \ne f(X) \
0, y = f(X)
\end{cases}
$$

期望风险 $R_{exp}(f)=E{\displaystyle{\sum_{k=1}^K}(1-y)P(y=\text{label}|X)}$ 最小化,即是最大化后验概率。

1.2 朴素贝叶斯算法

输入

  • 训练数据集 $T={(x_1, y_1),\cdots,(x_n, y_n) }$
  • 其中第 $i$ 个样本点 $x_i=(x_i^{(1)}, \cdots,x_i^{(j)})$ 中 $j$ 表示第 $j$ 个特征
  • $x_i^{(j)} \in {a_{j1},\cdots, a_{js}}$ ,表示第 $i$ 个样本的 $j$ 维特征,可以以取得的值集合
  • $y_i\in {c_1, \cdots, c_k }$ 表示第 $i$ 个数据点上可以取得的标签维度

训练过程

  1. 计算先验概率和在每个特征不同取值条件概率
    • 计算每个标签的先验概率,$P(y=\text{label})=\frac{\displaystyle{\sum_{i=1}^N}I(y_i=c_k)}{N}, \text{label}={1,\cdots,k}$
    • 需要分别计算在标签为 \text{label} 的条件下,每个特征可能取值的条件概率,$P(X^{j}=a_{js}|\text{label})=\frac{\displaystyle{\sum_{i=1}^N I(x_i^{j}=a_{js}, y_i=\text{label})}}{\dislpalystle{\sum_{i=1}^N I(y_i=\text{label})}}$
  2. 给定的实例 $x=(x^{(1)},\cdots,x^{(n)})^\rm T$ 计算 $P(y=\text{label})\displaystyle{\prod_{j=1}^n}P(X^{(j)}=x^{(j)}|y=\text{label})$
  3. 计算实例的类 $y=\displaystyle{\text{argmax} P(y=\text{label})\prod_{j=1}^n P(X^{(j)}=x^{(j)}|y=\text{label})}$

输出: 实例的分类

说明:

  1. 封面图 “File:K-nearest Neighbors.png” by Pkuwangyan06 is licensed under CC BY-SA 4.0
  2. 缩略图来自 Flickr janeqjames
作者

ZenRay

发布于

2020-11-27

更新于

2021-04-19

许可协议

CC BY-NC-SA 4.0